package com.hsnn.medstgmini.pro.plan.service.impl;

import java.sql.Timestamp;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.hsnn.medstgmini.Constants;
import com.hsnn.medstgmini.pro.plan.dao.BasePriceadjplanDao;
import com.hsnn.medstgmini.pro.plan.model.BasePriceadjplan;
import com.hsnn.medstgmini.pro.plan.service.BasePriceadjplanManager;
import com.hsnn.medstgmini.util.DateUtil;
import com.hsnn.medstgmini.util.DicSysUtil;
import com.hsnn.medstgmini.util.Pagination;


/**
 *@category 调价计划 接口SERVICE实现类
 * @author 韩守松
 * @date 2015年6月17日
 */
@Service
public class BasePriceadjplanManagerImpl implements BasePriceadjplanManager {
	
	@Autowired
	private BasePriceadjplanDao basePriceadjplanDao;
	/**
	 * @category 查询调价计划数据
	 * @author 韩守松
	 * @date   2015年6月17日
	 * @param  @return
	 */
	@Override
	public List<BasePriceadjplan> getBasePriceadjplanList(Pagination page,BasePriceadjplan basePriceadjplan) {
		List<BasePriceadjplan> bpaPlan = basePriceadjplanDao.getBasePriceadjplanList(page,basePriceadjplan);
		bpaPlan = formatBasePlan(bpaPlan);
		return bpaPlan;
	}
	
	/**
	 * @category 格式化调价计划数据，将药品类型由编码变为文字
	 * @author 单大伟
	 * @date   2015年6月28日
	 * @param  
     * @return
	 */
	protected List<BasePriceadjplan> formatBasePlan(List<BasePriceadjplan> bapPlanList) {
		
		for (BasePriceadjplan bpaPlan : bapPlanList) {
			if (bpaPlan != null) {
				bpaPlan.setPriceAdjPlanCatText(bpaPlan.getPriceAdjPlanCat() == null ? "" : DicSysUtil.getValueByClassCodeAndDicCode(Constants.DRUG_CAT, bpaPlan.getPriceAdjPlanCat()));
			}
		}
		
		return bapPlanList;
	}
	
	/**
	 * 
	 * @category 获取已调价计划列表
	 * @auth wangbing
	 * @return
	 * @date 2015年6月23日
	 */
	@SuppressWarnings("unchecked")
	@Override
	public Pagination getChangePlan(Pagination page) {
		List<Map<String,Object>> list = (List<Map<String, Object>>) basePriceadjplanDao.getChangePlan(page).getRows();
		for(Map<String,Object> data : list){
			data.put("createDatetime", DateUtil.dateTime((Timestamp)data.get("createDatetime")));
			data.put("executeDatetime", DateUtil.dateTime((Timestamp)data.get("executeDatetime")));
			data.put("updDatetime", DateUtil.dateTime((Timestamp)data.get("updDatetime")));
		}
		page.setRows(list);
		return page;
	}
}
